The present invention relates to memory devices and methods of operation thereof and, more particularly, to program state determination in memory devices.
Typical flash memory devices include an array of cells including floating gate transistors having threshold voltages corresponding to data values. For example, FIG. 1 illustrates a conventional flash memory device 22 including a memory cell array 222 comprising respective strings of floating gate transistors connected to respective bit lines BL0, BL1, BL2, . . . , BLn-2, BLn-1. Gate electrodes of respective rows of the transistors are connected to respective word lines WL0, WL1, . . . , WLm-3, WLm-2, WLm-1.
Respective string select lines SSL and ground select lines GSL control connection of the strings to the bit lines BL0, BL1, BL2, . . . , BLn-2, BLn-1 and a column select line CSL. The array 222 further includes flag cells 223 that are configured to store flag data indicative of a program state of the corresponding memory cells. The flag values are provided by flag bit lines FBL0, FBL1, . . . , FBLk-1.
The bit lines BL0, BL1, BL2, . . . , BLn-2, BLn-1 and flag bit lines FBL0, FBL1, . . . , FBLk-1 are driven by a page buffer 226, while the word lines WL0, WL1, . . . , WLm-3, WLm-2, WLm-1, string select lines SSL and ground select lines GSL are driven by row decoder 224. Control logic 228 controls the page buffer 226 and the row decoder 224.
As noted above, flag cells may be used to store information about the program state of the memory cells. For example, flag cells may be written to as the memory cells are programmed. For example, in a device in which memory cells are used to store 2 bit values, a flag cell value of “0” may indicate that an LSB of the cells has not been programmed, while a flag cell value of “1” may indicate that the LSB is programmed. In a read operation, a flag cell value of “1” may indicate that the LSB may be read. In a write operation, a flag cell value of “1” may indicate that the MSB may now be programmed. As the number of bits stored by the each memory cell increases, a greater number of flag cells is used to indicate program state.